package com.easylinkin.linkappapi.quality.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.quality.dto.QualityPositionDTO;
import com.easylinkin.linkappapi.quality.entity.QualityPosition;
import com.easylinkin.linkappapi.quality.entity.vo.QualityPositionVo;
import com.easylinkin.linkappapi.security.entity.LinkappUser;
import org.springframework.web.multipart.MultipartFile;
import site.morn.rest.RestMessage;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 闸机表 服务类
 * </p>
 *
 * @author TongJie
 * @since 2022-04-13
 */
public interface QualityPositionService extends IService<QualityPosition> {
  /**
   * 增加
   * @param qualityPosition
   */
  void insert(QualityPosition qualityPosition);

  /**
   * 根据id编辑
   * @param qualityPosition
   */
  void updateOne(QualityPosition qualityPosition);

  /**
   * 列表查询
   * @param qualityPositionDTO
   * @return
   */
  List<QualityPositionDTO> queryList(QualityPositionDTO qualityPositionDTO);

  /**
   * @Description: 删除部位（包含批量删除）
   * @author kan yuanfeng
   * @date 2020/11/04 11:42
   */
  void delBatch(Set<Integer> ids);

  /**
   * 实测实量部位树带实测实量状态
   *
   * @param qualityPositionDTO 部位dto入参
   * @return 统一出参
   */
  RestMessage queryListWithMeasureNum(QualityPositionDTO qualityPositionDTO);
  /**
   * 部位Excel导入
   * @param file
   * @return
   */
  JSONObject excelImport(MultipartFile file,Integer type, LinkappUser linkappUser);

  /**
   * 混凝土强度检测部位树带测量状态
   *
   * @param qualityPositionDTO 部位dto入参
   * @return 统一出参
   */
  RestMessage queryListWithConcreteNum(QualityPositionDTO qualityPositionDTO);

  /**
   * 根据条件查询部位
   *
   * @param qualityPositionVo 入参vo
   * @return 统一出参
   */
  RestMessage queryByParam(QualityPositionVo qualityPositionVo);
}
